infoboxの実装詳細 takker
infoboxの実装詳細takker.icon
infoboxという名前でtable記法を書いた時、その要素がinfoboxDefinitionに格納されている hallucinationって書いてある時点でLLM使ってるの確定だ
https://gyazo.com/7440a95dc691a0c42940ad64b2746308
code:ts
// 新規に生えたpropertiesのみ
export interface Page {
infoboxDefinition: string[];
infoboxResult: InfoboxResultItem[];
}
export interface InfoboxResultItem {
hallucination: boolean;
infobox: Record<string, string>;
title: string;
truncated: boolean;
}
さらに、関連ページリストのデータに該当するRelatedPageに、infobox用のpropertyが生えてる code:ts
export interface RelatedPage {
infoboxResult: InfoboxResultItem[];
}
これらがページ下部のinfoboxに表示される
https://gyazo.com/07d7d8aed5251a2ee48576c6e4cb13b3
編集中の更新
LLMの生成が完了したタイミングや、ページデータが更新されたタイミングで、ScrapboxのWebSocketからinfobox:reloadやliteral-database:reloadが送られてくる infobox:reload:infoboxの変更?
literal-database:reload:おそらくLLMがデータを生成したときに出される
リンクデータや関連ページデータの更新差分をwebsocketから送っている実装と比べると、だいぶ大雑把な方法に感じるtakker.icon
今後修正する予定なのだろうな
最適化は使われ方がわかった後のほうがコスパ良い基素.icon
MVPではなく、意図された設計でしたtakker.icon